package com.example.optimizaapp.domain.Utilities;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.example.optimizaapp.domain.Cliente;
import com.example.optimizaapp.domain.Incidente;
import com.example.optimizaapp.domain.ManejadorCliente;
import com.example.optimizaapp.domain.ManejadorIncidente;

import android.os.AsyncTask;
import android.util.Log;

public class GetClientes extends AsyncTask<String, Void, String>{

	private ArrayList <Cliente> clientes;
	private static final String CLIENTES_KEY = "data";
	private static final String CALLE_CLIENTE = "calle";
	private static final String NUMERO_CALLE_CLIENTE = "numero";
	private static final String ID_CLIENTE = "id";
	private static final String NOMBRE_FANTASIA = "nombreFantasia";
	private static final String RAZON_SOCIAL = "razonSocial";
	
	@Override
	protected String doInBackground(String... params) {
		String returned = Webservices.callWebService(params[0]);
		return returned;
	}
	
	protected void onPostExecute(String result) {
		
		try {
			
			this.clientes = new ArrayList<Cliente>();
			JSONObject response = new JSONObject(result);
			Log.d("RESPONSE", result);
			JSONArray clientes = response.getJSONArray(CLIENTES_KEY);
			
			for(int j = 0; j < clientes.length(); j++){
				 JSONObject jClientes = clientes.getJSONObject(j);
				 Cliente c = new Cliente();
				 String direccion = jClientes.getString(CALLE_CLIENTE) + " " + jClientes.getString(NUMERO_CALLE_CLIENTE);
				 c.setDireccion(direccion);
				 c.setNombreCliente(jClientes.getString(NOMBRE_FANTASIA));
				 c.setRazonSocial(jClientes.getString(RAZON_SOCIAL));
				 c.setId(jClientes.getInt(ID_CLIENTE));
				 this.clientes.add(c);
			}
			
			ManejadorCliente.getManejadorCliente().setClientes(this.clientes);
			//ManejadorIncidente.getManejadorIncidente().obtenerIncidentes(1);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RuntimeException e){
			e.printStackTrace();

		}
		
    }

	
	

	
	
}
